// Copyright 2016-2017 The RamFuzz contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

enum E { e1 = 100, e2 = 200 };

namespace NS {
enum D { d1 = -999999, d2, d3 };
}

class B {
  int sum = 411;

public:
  int get() const { return sum; }
  void f(E e) { sum += e / 300; }
  int g(NS::D d) { return d; }
};

enum F { f1, f2 };
enum G { g1 };

class C {
public:
  virtual F f() = 0;
  virtual G *g() = 0;
};
